package com.aep.provisioning.service;

import java.math.BigDecimal;
import java.util.List;

import com.aep.provisioning.dao.EspRateCodeDAO;
import com.aep.provisioning.domain.EspRateCode;

public class EspRateCodeServiceImpl implements EspRateCodeService{
	
	private EspRateCodeDAO espRateCodeDAO;

	public List<EspRateCode> findListEspRateCodeMonthly(Long utilityID, String plan){
		return espRateCodeDAO.findListEspRateCodeMonthly(utilityID, plan);
	}
	public List<EspRateCode> findStandardERateCodekWhRate(Long utilityID, String plan,BigDecimal monthly){
		return espRateCodeDAO.findStandardERateCodekWhRate(utilityID, plan, monthly);
	}
	public List<EspRateCode> findStandardERateCodekWRate(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate){
		return espRateCodeDAO.findStandardERateCodekWRate(utilityID, plan, monthly, kWhRate);
	}
	public EspRateCode findStandardERateCode(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate,BigDecimal kWRate){
		return espRateCodeDAO.findStandardERateCode(utilityID, plan, monthly, kWhRate, kWRate);
	}
	public List<EspRateCode> findSeasonalERateCodeSummerkWh(Long utilityID, String plan,BigDecimal monthly){
		return espRateCodeDAO.findSeasonalERateCodeSummerkWh(utilityID, plan, monthly);
	}
	public List<EspRateCode> findSeasonalERateCodeNonSummerkWh(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate){
		return espRateCodeDAO.findSeasonalERateCodeNonSummerkWh(utilityID, plan, monthly, summerKWhRate);
	}
	public List<EspRateCode> findSeasonalERateCodekW(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate,BigDecimal nonSummerKWhRate){
		return espRateCodeDAO.findSeasonalERateCodekW(utilityID, plan, monthly, summerKWhRate, nonSummerKWhRate);
	}
	public EspRateCode findSeasonalERateCode(Long utilityID, String plan,BigDecimal monthly,BigDecimal summerKWhRate,BigDecimal nonSummerKWhRate,BigDecimal kWRate){
		return espRateCodeDAO.findSeasonalERateCode(utilityID, plan, monthly, summerKWhRate, nonSummerKWhRate, kWRate);
	}
	public List<EspRateCode> findListDiscount(Long utilityID, String plan){
		return espRateCodeDAO.findListDiscount(utilityID, plan);
	}
	public EspRateCode findDiscountERateCode(Long utilityID, String plan,BigDecimal discountAmount){
		return espRateCodeDAO.findDiscountERateCode(utilityID, plan,discountAmount);
	}
	public EspRateCode findEspRateCode(Long utilityID,String rateCode){
		return espRateCodeDAO.findEspRateCode(utilityID, rateCode);
	}
	public EspRateCode findStandardERateCodeMostNear(Long utilityID, String plan,BigDecimal monthly,BigDecimal kWhRate,BigDecimal kWRate){
		return espRateCodeDAO.findStandardERateCodeMostNear(utilityID, plan, monthly, kWhRate, kWRate);
	}
	
	public EspRateCode findEspRateCodeByPrice(Long utilityId, BigDecimal price){
		return espRateCodeDAO.findEspRateCodeByPrice(utilityId, price);
	}

	public void setEspRateCodeDAO(EspRateCodeDAO espRateCodeDAO) {
		this.espRateCodeDAO = espRateCodeDAO;
	}
	
}
